// Copyright © SixtyFPS GmbH <info@slint.dev>
// SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0

struct Str := { foo: Rectangle }
//         ^warning{':=' to declare a struct is deprecated. Remove the ':='}
//                   ^^error{'Rectangle' is not a valid type}

Comp := Rectangle {
//   ^warning{':=' to declare a component is deprecated. The new syntax declare components with 'component MyComponent {'. Read the documentation for more info}
    property <Rectangle> r;
//            ^error{'Rectangle' is not a valid type}

    property <[Rectangle]> ls;
//             ^error{'Rectangle' is not a valid type}
    property <{foo: Rectangle}> st;
//                  ^error{'Rectangle' is not a valid type}

    callback cb1(Rectangle);
//               ^error{'Rectangle' is not a valid type}
    callback cb2() -> Rectangle;
//                    ^error{'Rectangle' is not a valid type}
}

export Foo := Rectangle {
//         ^warning{':=' to declare a component is deprecated. The new syntax declare components with 'component MyComponent {'. Read the documentation for more info}
    xx := Rectangle { }
    Comp {
        r: xx;
//      ^error{Unknown property r in Comp}
//         ^^error{Cannot take reference of an element}
    }
}
